home *** CD-ROM | disk | FTP | other *** search
- package com.extensibility.xml;
-
- import com.extensibility.xml.xsdl19991217.XSDLFlavor;
- import java.io.File;
- import java.util.Vector;
-
- public class FlavorRegistry {
- static FlavorRegistry singleton;
- Vector factories = new Vector();
- Vector names = new Vector();
- Vector bases = new Vector();
-
- public FlavorRegistry() {
- this.add(DTDFlavor.NAME, new 1((FlavorRegistry)null));
- this.add(XDRFlavor.NAME, new 2((FlavorRegistry)null));
- this.add(XDRFlavor.NAME, BIZFlavor.NAME, new 3((FlavorRegistry)null));
- this.add(SOX2Flavor.NAME, new 4((FlavorRegistry)null));
- this.add("xsd", new 5((FlavorRegistry)null));
- this.add(XDRFlavor.NAME, OSCFlavor.NAME, new 6((FlavorRegistry)null));
- }
-
- public String getNamedBaseFlavor(String var1) {
- int var2 = this.names.indexOf(var1);
- return var2 >= 0 ? (String)this.bases.elementAt(var2) : null;
- }
-
- public boolean isCompatible(String var1, String var2) {
- return this.getNamedBaseFlavor(var1).equals(this.getNamedBaseFlavor(var2));
- }
-
- public void add(String var1, String var2, FlavorFactoryIntf var3) {
- int var4 = this.names.indexOf(var2);
- if (var4 >= 0) {
- this.bases.setElementAt(var1, var4);
- this.names.setElementAt(var2, var4);
- this.factories.setElementAt(var3, var4);
- } else {
- this.bases.addElement(var1);
- this.names.addElement(var2);
- this.factories.addElement(var3);
- }
-
- }
-
- public void add(String var1, FlavorFactoryIntf var2) {
- this.add(var1, var1, var2);
- }
-
- public void remove(String var1) {
- int var2 = this.names.indexOf(var1);
- if (var2 >= 0) {
- this.bases.removeElementAt(var2);
- this.names.removeElementAt(var2);
- this.factories.removeElementAt(var2);
- }
-
- }
-
- public static FlavorRegistry getDefaultRegistry() {
- if (singleton == null) {
- singleton = new FlavorRegistry();
- }
-
- return singleton;
- }
-
- public String[] getFlavorNames() {
- String[] var1 = new String[this.names.size()];
-
- for(int var2 = 0; var2 < this.factories.size(); ++var2) {
- var1[var2] = this.names.elementAt(var2).toString();
- }
-
- return var1;
- }
-
- public FlavorFactoryIntf getNamedFactory(String var1) {
- int var2 = this.names.indexOf(var1);
- return var2 >= 0 ? (FlavorFactoryIntf)this.factories.elementAt(var2) : null;
- }
-
- public boolean flavorExists(String var1) {
- if (var1.equals("xsd.1999.12.17")) {
- return true;
- } else if (var1.equals("xsd.1999.05.06")) {
- return true;
- } else {
- return this.names.indexOf(var1) >= 0;
- }
- }
-
- public SchemaFlavorIntf createFlavor(SchemaIntf var1, String var2) {
- FlavorFactoryIntf var3 = this.getNamedFactory(var2);
- if (var3 == null) {
- if (var2.equals("xsd.1999.12.17")) {
- return new XSDLFlavor(var1);
- } else {
- return var2.equals("xsd.1999.05.06") ? new com.extensibility.xml.xsdl19990506.XSDLFlavor(var1) : null;
- }
- } else {
- return var3.createFlavor(var1);
- }
- }
-
- private FlavorFactoryIntf createFlavorFactory(String var1, URI var2) {
- return new 7(var1, var2, (FlavorRegistry)null);
- }
-
- public void addFlavors(File var1) {
- String[] var2 = var1.list();
- if (var2 != null) {
- for(int var3 = 0; var3 < var2.length; ++var3) {
- String var4 = var2[var3];
- int var5 = var4.lastIndexOf(46);
- String var6 = var5 == -1 ? var4 : var4.substring(0, var5);
- String var7 = var5 == -1 ? "" : var4.substring(var5 + 1);
- URI var8 = new URI(new File(var1, var4));
- if (var7.equals("xams") || MetaSchemaFlavor.isValid(var6, var8)) {
- FlavorFactoryIntf var9 = this.createFlavorFactory(var6, var8);
- this.add(SchemaIntf.XDR_FLAVOR_NAME, var6, var9);
- }
- }
-
- }
- }
- }
-